import { createI18n } from 'vue-i18n'
import { pinia, useLangStroe } from '@stores'
import { computed, unref, App } from 'vue'
import { LANGMAP } from '@/config'
import zhCN from './zh-CN'
import en from './en'

const langStore = useLangStroe(pinia)
const currentLang = computed(() => langStore.currentLang)
const langMap = langStore.getLangMap
const messages = {
  [LANGMAP.zhCN]: zhCN,
  [LANGMAP.en]: en
}

const i18n = createI18n({
  // 使用 Composition API 模式，则需要将其设置为false
  legacy: false,
  // 默认语言
  locale: unref(currentLang).lang,
  // 后备语言
  fallbackLocale: LANGMAP.en,
  // 可用的语言列表
  availableLocales: langMap.map((item) => item.lang),
  // 语言文件
  messages,
  //全局生效$t
  globalInjection: true,
  // 移除控制台warning
  silentTranslationWarn: true
})
export default i18n
export const setupI18n = {
  install (app: App) {
    app.use(i18n);
  }
}
